package com.ruoyi.stock.service;

import java.util.List;
import com.ruoyi.stock.domain.StockInventoryLog;

/**
 * 库存变动日志Service接口
 * 
 * @author ruoyi
 * @date 2025-06-17
 */
public interface IStockInventoryLogService 
{
    /**
     * 查询库存变动日志
     * 
     * @param logId 库存变动日志主键
     * @return 库存变动日志
     */
    public StockInventoryLog selectStockInventoryLogByLogId(Long logId);

    /**
     * 查询库存变动日志列表
     * 
     * @param stockInventoryLog 库存变动日志
     * @return 库存变动日志集合
     */
    public List<StockInventoryLog> selectStockInventoryLogList(StockInventoryLog stockInventoryLog);

    /**
     * 新增库存变动日志
     * 
     * @param stockInventoryLog 库存变动日志
     * @return 结果
     */
    public int insertStockInventoryLog(StockInventoryLog stockInventoryLog);

    /**
     * 记录库存变动日志
     * 
     * @param productId 商品ID
     * @param productName 商品名称
     * @param beforeQuantity 变动前数量
     * @param afterQuantity 变动后数量
     * @param changeType 变动类型（1入库 2出库 3盘点）
     * @param relatedDocType 关联单据类型（1采购 2销售 3盘点）
     * @param relatedDocId 关联单据ID
     * @param warehouseCode 仓库编码
     * @param operator 操作人
     * @param remark 备注
     * @return 结果
     */
    public int recordInventoryChange(Long productId, String productName, Long beforeQuantity, Long afterQuantity, 
            String changeType, String relatedDocType, Long relatedDocId, String warehouseCode, String operator, String remark);

    /**
     * 修改库存变动日志
     * 
     * @param stockInventoryLog 库存变动日志
     * @return 结果
     */
    public int updateStockInventoryLog(StockInventoryLog stockInventoryLog);

    /**
     * 批量删除库存变动日志
     * 
     * @param logIds 需要删除的库存变动日志主键集合
     * @return 结果
     */
    public int deleteStockInventoryLogByLogIds(String logIds);

    /**
     * 删除库存变动日志信息
     * 
     * @param logId 库存变动日志主键
     * @return 结果
     */
    public int deleteStockInventoryLogByLogId(Long logId);
} 